home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 001-100 / 001-025 / 020 / amigatoatari / convertm.c < prev    next >
C/C++ Source or Header  |  1995-03-17  |  3KB  |  111 lines

  1. /* convertm.c */
  2. #include <stdio.h>
  3.  
  4. /*
  5.  * CVT - convert Amig*-format loadfiles to GEMDOS.
  6.  *
  7.  * THIS PROGRAM IS (C)1985 LANDON M. DYER AND MAY BE
  8.  * DISTRIBUTED ONLY IF THE FOLLOWING CONDITIONS ARE MET:
  9.  *     1. YOU DO NOT MAKE A PROFIT ON IT.
  10.  *     2. IF YOU HAVE THE SOURCE CODE, YOU GIVE THAT AWAY, TOO.
  11.  *    3. YOU INCLUDE THIS NOTICE IN THE SOURCE AND OBJECT CODE.
  12.  *
  13.  *----
  14.  * 25-Nov-1985 lmd    Hacked it up (from earlier file-dump hacks).
  15.  *
  16.  */
  17. char *version = "0.50";
  18. char *date = "25-Nov-1985";
  19.  
  20. #define    STRINGSIZ    256
  21. #define    READ        0
  22. #define    WRITE        1
  23.  
  24. int debug = 0;
  25. int printing = 0;
  26.  
  27.  
  28. /*
  29.  * Handle commandline
  30.  */
  31. main(argc, argv)
  32. int argc;
  33. char **argv;
  34. {
  35.     int argno;
  36.     int fd, ofd;
  37.     char *s, ofn[STRINGSIZ], ifn[STRINGSIZ];
  38.  
  39.     /*
  40.      * No instructions:
  41.      * print info about use and
  42.      * exit with bad return code.
  43.      */
  44.     if (argc <= 1)
  45.     {
  46.     s = "-----------------------------------------------------------------\n";
  47.     fprintf(stderr, s);
  48.     fprintf(stderr, "CVT version %s                                      %s\n", version, date);
  49.     fprintf(stderr, "THIS  PROGRAM IS  (C)1985  LANDON M. DYER  AND MAY BE DISTRIBUTED\n");
  50.     fprintf(stderr, "ONLY IF THE FOLLOWING CONDITIONS ARE MET:\n");
  51.     fprintf(stderr, "\t1. YOU DO NOT MAKE A PROFIT ON IT.\n");
  52.     fprintf(stderr, "\t2. IF YOU HAVE THE SOURCE CODE, YOU GIVE THAT AWAY, TOO.\n");
  53.     fprintf(stderr, "\t3. YOU INCLUDE THIS NOTICE IN THE SOURCE AND OBJECT CODE.\n");
  54.     fprintf(stderr, s);
  55.     fprintf(stderr, "Usage:\n");
  56.     fprintf(stderr, "CVT [-d] [-p] inputfile[.LN] [inputfile...]\n");
  57.     fprintf(stderr, "        ==> file.PRG output files.\n");
  58.     exit(1);
  59.     }
  60.  
  61.  
  62.     for (argno = 1; argno < argc; ++argno)
  63.         if (*argv[argno] == '-')
  64.         for (s = &argv[argno][1]; *s; ++s)
  65.         switch(*s)
  66.         {
  67.             case 'p':
  68.             case 'P':
  69.             printing = 1;
  70.             printf("CVT version %s %s\n", version, date);
  71.             break;
  72.  
  73.             case 'd':
  74.             case 'D':
  75.             debug = 1;
  76.             fprintf(stderr, "~ Debugging ON\n");
  77.             break;
  78.  
  79.             default:
  80.             fprintf(stderr, "Unknown option: %s\n", argv[argno]);
  81.             exit(1);
  82.         }
  83.     else {
  84.         strcpy(ifn, argv[argno]);        /* file[.LN] (soft ext.) */
  85.         fext(ifn, ".ln", 0);
  86.         strcpy(ofn, argv[argno]);        /* file[.PRG] (hard ext.) */
  87.         fext(ofn, ".prg", 1);
  88.  
  89.         fd = ebinopen(ifn, READ);
  90.         ofd = ebinopen(ofn, WRITE);
  91.  
  92.         if (printing)
  93.         printf("%s ==> %s\n", ifn, ofn);
  94.  
  95.         convert(fd, ofd);            /* convert, then close */
  96.         close(fd);
  97.         close(ofd);
  98.     }
  99. }
  100.  
  101.  
  102. /*
  103.  * Panic and give up.
  104.  */
  105. panic(s)
  106. char *s;
  107. {
  108.     fprintf(stderr, "Panic: %s\n", s);
  109.     exit(1);
  110. }
  111.